用Java实现swing自定义Matlab按钮外观
我想用Java更改Matlab按钮的外观。为此,我使用应用程序Findjobj。然而,由于我不懂Java,我很难正确使用Java类,我需要使我的按钮具有圆角。根据找到的信息here),我尝试使用类BorderFactory设置按钮:
hButton = uicontrol('string','click me!');
jButton = findjobj(hButton);
jButton.setCursor(java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton.setBorder(BorderFactory.createLineBorder(red,1,true));
但这是行不通的。我收到以下错误消息:
??? Undefined function or variable 'red'.
Error in ==> de at 4
jButton.setBorder(BorderFactory.createLineBorder(red,1,true));
编辑:我意识到我忘了包含颜色和线条边框的Java类。修复后,代码如下所示:
import java.awt.Color;
import javax.swing.border.LineBorder;
hButton = uicontrol('Style','pushbutton','String','click me!',...
'Units','normalized','Position',[0.156 0.64 0.688 0.1],'FontSize',9,...
'ForegroundColor','w','BackgroundColor','k');
jButton = findjobj(hButton);
jButton.setCursor(java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton.setBorder(LineBorder(Color.white,5,true));
然而,结果仍然没有公布给我Here是最终外观。我可以把拐角弄圆
# 1 楼答案
这可能是
Color.red
或Color.RED
请注意,这里使用的} 构造函数
BorderFactory
方法仅在Java1.7(最近)中引入。要使其与1.3版本兼容,请使用直接^{# 2 楼答案
如果你想要圆角按钮,你必须使用一个Look & Feel,它的按钮UI委托绘制圆角按钮。示例包括
com.apple.laf.AquaButtonUI
,如图所示here,以及javax.swing.plaf.synth.SynthLookAndFeel
,如图所示here。您还可以实现自己的ButtonUI
和Border
,如图所示here,但您必须决定是否值得这样做附录:查看相关的Matlab question和相关的Swing tutorial,注意“如果要设置L&F,应该将其作为应用程序中的第一步进行设置。”